package cn.tedu.baking.controller;

import cn.tedu.baking.base.response.JsonResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

@Slf4j
@RestController
@RequestMapping("/v1/")
public class UploadController {
    //1.(MultipartFile file) MultipartFile是用来接收上传文件的对象
    //file必须与前端<el-upload name="file">的值一样！
    @PostMapping("upload")
    public JsonResult upload(MultipartFile file) throws IOException {
        //得到原始文件名
        String fileName = file.getOriginalFilename();
        //得到后缀
        String suffix = fileName.substring(fileName.lastIndexOf("."));
        //得到唯一文件名UUID.randomUUID()得到一个唯一的标识符(字符串)
        fileName = UUID.randomUUID()+suffix;
        //指定一个文件夹路径用来存图片,注意这个路径得自己电脑上有
        String dirPath = "D:/files";
        SimpleDateFormat sdf = new SimpleDateFormat("/yyyy/MM/dd/");
        //将当前日期格式化成上面的日期格式
        String datePath = sdf.format(new Date());
        File dirFile = new File(dirPath+datePath);
        if (!dirFile.exists()){
            dirFile.mkdirs();
        }
        String filePath = dirPath+datePath+fileName;
        //把文件保存到指定的路径 异常抛出--看看文件系统中是否有该图片
        file.transferTo(new File(filePath));
        //把日期路径 + 图片文件名响应给前端 /2024/3/27/xxx.jpg
        return JsonResult.ok(datePath+fileName);
    }
    @PostMapping("remove")
    public JsonResult remove(String imgUrl){
        new File("d:/files"+imgUrl).delete();
        return JsonResult.ok();
    }
}
